package com.tqw.item.controller;



import com.tqw.entity.Result;
import com.tqw.entity.StatusCode;
import com.tqw.pojo.ItemCat;
import com.tqw.item.service.ItemCatService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 主要用来处理分类菜单
 * @author Alex
 */
@RestController
@RequestMapping("/item/itemCat")
public class ItemCatController {

    @Autowired
    private ItemCatService itemCatService;

    /**
     * 查询3级商品分类信息
     * 请求路径:/itemCat/findItemCatList/{level}
     * 请求类型:get
     * 请求参数:level
     * 返回值:Result<List<ItemCat>>
     * @param level
     * @return
     */
    @GetMapping("/findItemCatList/{level}")
    public Result<List<ItemCat>> findItemCatList(@PathVariable Integer level){

        List<ItemCat> list = itemCatService.findItemCatList(level);
        if (list==null) {
            return new Result<>(true, StatusCode.ERROR,"调用失败");
        }
        Result<List<ItemCat>> itemCatResult = new Result<>();
        itemCatResult.setData(list);
        return itemCatResult;
    }

    /**
     * 修改状态
     * 请求路径:/itemCat/updateStatus/{id}/{status}
     * 请求类型:put
     * 请求参数:id,status/updated
     * 返回值:Result
     * @return
     */
    @PutMapping("/updateStatus/{id}/{status}/{updated}")
    public Result<?> updateStatus(ItemCat itemCat){

        itemCatService.updateStatus(itemCat);
        return new Result<>();
    }

    /**
     * 修改商品分类名字
     * 请求路径:/itemCat/updateItemCat/{id}/{name}/{updated}
     * 请求类型:put
     * 请求参数:id,name,updated
     * 返回值:Result
     * @param itemCat
     * @return
     */
    @PutMapping("/updateItemCat/{id}/{name}/{updated}")
    public Result<?> updateItemCat(ItemCat itemCat){

        itemCatService.updateItemCat(itemCat);
        return new Result<>();
    }

    /**
     * 新增商品分类
     * 请求路径:/itemCat/saveItemCat
     * 请求类型:post
     * 请求参数:表单数据
     * 返回值:Result
     * @return
     */
    @PostMapping("/saveItemCat")
    public Result<?> saveItemCat(@RequestBody ItemCat itemCat){

        itemCatService.saveItemCat(itemCat);
        return new Result<>();
    }

    /**
     * 删除商品分类
     * 请求路径:/itemCat/deleteItemCat
     * 请求类型:delete
     * 请求参数: id,level
     * 返回值:Result
     * @param itemCat
     * @return
     */
    @DeleteMapping("/deleteItemCat")
    public Result<?> deleteItemCat(ItemCat itemCat){

        itemCatService.deleteItemCat(itemCat);
        return new Result<>();
    }


}
